package com.bw.ae.nexus;

import com.bw.ae.nexus.domain.User;

/**
 * Created by Xiaosiyuan on 2016/8/23.
 * @Author xiaosy
 * @AEService
 */
public interface INexusOperator {

    /**
     * 创建snapshot和release两个库并添加到ae-public组中
     * @param projectLabel 项目标识
     * @return true 创建成功，false 创建失败
     */
    public boolean createRepository(String projectLabel);


    /**
     * 添加用户信息
     * @param user 用户信息
     * @return true 添加成功，false 添加失败
     */
    public boolean addUser(User user);

    /**
     * 给用户授权
     * @param userId 用户id
     * @param projectLabel 项目标识
     * @return true 授权成功，false 授权失败
     */
    public boolean grantUser(String userId, String projectLabel);

    /**
     * 用户修改密码
     * @param userId 用户id
     * @param oldPassword 原密码
     * @param newPassword 新密码
     * @return true 修改成功 false 修改失败
     */
    public boolean changePassword(String userId,String oldPassword,String newPassword);

    /**
     * 修改用户密码
     * @param userId 用户id
     * @param password 新密码
     * @return true 修改成功 false 修改失败
     */
    public boolean changePassword(String userId,String password);

    /**
     * 删除用户
     * @param userId 用户id
     * @return true 修改成功 false 修改失败
     */
    public boolean deleteUser(String userId);
    /**
     *  取消用户对某个项目的授权
     * @param userId 用户id
     * @param projectLabel 项目标识
     * @return true 取消授权成功 false 取消授权失败
     */
    public boolean ungrantUser(String userId,String projectLabel);
    /**
     * 禁用用户
     * @param userId 用户id
     * @return true 禁用成功 false 禁用失败
     */
    public boolean disableUser(String userId);
    
    /**
     * 激活用户
     * @param userId 用户ID
     * @return true 激活成功 false 激活失败
     */
    public boolean activeUser(String userId);
}
